﻿namespace Notifications.Runtime
{

    public static class NotificationSetting
    {
        public const int PRIORITY_DEFAULT = 0;
        public const int PRIORITY_LOW = -1;
        public const int PRIORITY_MIN = -2;
        public const int PRIORITY_HIGH = 1;
        public const int PRIORITY_MAX = 2;
    }
    
    public interface IGameBackgroundNotification
    {
        /// <summary>
        /// Gets or sets a unique identifier for this notification.
        /// </summary>
        /// <remarks>
        /// <para>
        /// If null, will be generated automatically once the notification is delivered, and then
        /// can be retrieved afterwards.
        /// </para>
        /// <para>On some platforms, this might be converted to a string identifier internally.</para>
        /// </remarks>
        /// <value>A unique integer identifier for this notification, or null (on some platforms) if not explicitly set.</value>
        int Id { get; set; }

        /// <summary>
        /// Gets or sets the notification's title.
        /// </summary>
        /// <value>The title message for the notification.</value>
        string Title { get; set; }

        /// <summary>
        /// Gets or sets the body text of the notification.
        /// </summary>
        /// <value>The body message for the notification.</value>
        string Body { get; set; }
        
        EChannelType Channel  { get; set; }
        
        bool NeedUpdate { get; set; }
        bool NeedClose { get; set; }
        bool Ongoing { get; set; }
        int GetId();
        string GetTitle();
        string GetContent();
        bool GetNeedClose();
        int GetChannelId();
        bool GetNeedUpdate();
        bool GetOngoing();
        void OnUpdateNotification();
    }
}